A recently developed conventional video compression technology standard is the H.264 standard developed jointly by the ITU-T Video Coding Experts Group (VCEG) and the Motion Picture Experts Group (MPEG). The H.264 standard is also referred to as MPEG-4 Part 10 and Advanced Video Coding (AVC). H.264 contains a number of features that allow for more effective video compression than previous standards.
One such feature is intra-prediction, where a block can be predicted from the neighboring pixels in the same picture. H.264 baseline profile allows intra-prediction to be done for either 16×16 pixel blocks or 4×4 pixel blocks. Such prediction was not adequately defined in previous standards (e.g., the H.263 standard). The H.264 standard provides four modes for 16×16 blocks and nine modes for 4×4 blocks. The decision as to when to use a 16×16 block or a 4×4 block and which mode to use in either case is not indicated by the standard, but is left to the encoder to decide based on efficiency and performance. Typically, using 4×4 blocks provides better prediction but at reduced efficiency (i.e., a greater number of bits required to signal the intra prediction modes). Distortion and rate are two metrics used to quantify the performance or usefulness of a particular prediction mode. Distortion indicates how close the prediction is to the actual image and rate refers to the number of bits required to encode the image. Optimizing the tradeoff between distortion and rate is referred to as rate-distortion optimization.
One method for determining the best mode is to encode the image as both a 16×16 block and as 16 4×4 blocks, using all of the available modes for each. The best mode is determined through a rate-distortion (RD) optimization calculation of each of the available modes. Therefore, the number of RD calculations required to determine the best luma prediction mode for a 16×16 block is 148 (the number of prediction modes (4) for the 16×16 block plus the number of prediction modes (9) for each of the 16 4×4 blocks comprising the 16×16 block).
Such a scheme is disadvantageous due to the computational complexity for intra prediction mode decisions. This disadvantage has been addressed to some extent in various ways. One such scheme provides an intra mode decision algorithm for determining the optimal mode from among the nine modes for a 4×4 block. Initially, the horizontal prediction mode, vertical prediction mode, and DC prediction mode are evaluated. Then, depending on which of these three modes is determined to be optimal, another two or three associated modes are evaluated.
For example, if upon initial evaluation, the horizontal prediction mode is determined to be optimal relative to the vertical prediction mode and the DC prediction mode, then, the horizontal-up prediction mode and the horizontal-down prediction mode are also evaluated. The optimal mode from among the secondary evaluations is then selected. This method reduces the number of calculations by associating modes, thereby reducing the number of evaluations, for each of the 16 4×4 blocks, from nine to approximately five or six.
Another prior art scheme for reducing the required calculations is based upon making an initial assessment of the 16×16 block; if the 16×16 block meets a threshold level of “smoothness”, then 16×16 block mode is selected and no evaluations are conducted for 4×4 block modes. This method allows for a quick determination between the four 16×16 block modes and the nine 4×4 modes. This method provides a substantial reduction in calculations when the 16×16 block meets the arbitrary smoothness threshold, but if not, the number of calculations remains great.
These and other conventional mode determination prediction schemes are non-comprehensive, disjointed, and to some degree arbitrary, and thus do not provide a consistently reliable prediction mode determination technique.